c55e5a50163e0299dd874ed09ce6f09e5f137f7d,src/main/java/net/foxdenstudio/sponge/foxcore/plugin/command/CommandSubtract.java,CommandSubtract,getSuggestions,#CommandSource#String#,104

Before Change



    @Override
    public List<String> getSuggestions(CommandSource source, String arguments) throws CommandException {
        AdvCmdParse.ParseResult parse = AdvCmdParse.builder().arguments(arguments).excludeCurrent(true).autoCloseQuotes(true).parse();
        if (parse.currentElement.type.equals(AdvCmdParse.CurrentElement.ElementType.ARGUMENT)) {
            if (parse.currentElement.index == 0)
                return FCStateManager.instance().getPrimaryAliases().stream()
                        .filter(alias -> !isOn(parse.args, alias))

After Change


    @Override
    public List<String> getSuggestions(CommandSource source, String arguments) throws CommandException {
        if (!testPermission(source)) return ImmutableList.of();
        AdvCmdParse.ParseResult parse = AdvCmdParse.builder()
                .arguments(arguments)
                .limit(1)
                .excludeCurrent(true)
                .autoCloseQuotes(true)
                .parseLastFlags(false)
                .leaveFinalAsIs(true)
                .parse();
        if (parse.current.type.equals(AdvCmdParse.CurrentElement.ElementType.ARGUMENT)) {
            if (parse.current.index == 0) {
                return FCStateManager.instance().getPrimaryAliases().stream()
                        .filter(new StartsWithPredicate(parse.current.token))
                        .collect(GuavaCollectors.toImmutableList());
            }
        } else if (parse.current.type.equals(AdvCmdParse.CurrentElement.ElementType.FINAL)) {
            IStateField field = FCStateManager.instance().getStateMap().get(source).getFromAlias(parse.args[0]);
            if (field == null) return ImmutableList.of();
            String extraArgs = "";
            if (parse.args.length > 1) extraArgs = parse.args[1];
            return field.subtractSuggestions(source, extraArgs);
        } else if (parse.current.type.equals(AdvCmdParse.CurrentElement.ElementType.COMPLETE))
            return ImmutableList.of(parse.current.prefix + " ");
        return ImmutableList.of();
    }